using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._DataManagementTools._Versions
{
    /// <summary>
    /// <para>Reconcile Versions</para>
    /// <para>Reconciles a version or multiple versions with a target version.</para>
    /// <para>将一个或多个版本与目标版本进行协调。</para>
    /// </summary>    
    [DisplayName("Reconcile Versions")]
    public class ReconcileVersions : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ReconcileVersions()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_input_database">
        /// <para>Input Workspace</para>
        /// <para><xdoc>
        ///   <para>The enterprise geodatabase that contains the versions to be reconciled.</para>
        ///   <para>For branch versioning, this will be the feature service URL (that is, https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer) or the feature layer portal item.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含要协调的版本的企业级地理数据库。</para>
        ///   <para>对于分支版本控制，这将是要素服务 URL（即 https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer）或要素图层门户项目。</para>
        /// </xdoc></para>
        /// </param>
        /// <param name="_reconcile_mode">
        /// <para>Reconcile Mode</para>
        /// <para><xdoc>
        ///   <para>Specifies the versions that will be reconciled when the tool is executed.</para>
        ///   <para>If the input is a branch workspace, the only valid option for this parameter is to reconcile all versions.</para>
        ///   <bulletList>
        ///     <bullet_item>Reconcile all versions—Reconciles edit versions with the target version. This is the default.</bullet_item><para/>
        ///     <bullet_item>Reconcile blocking versions only—Reconciles versions that are blocking the target version from compressing. This option uses the recommended reconcile order.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在执行工具时要协调的版本。</para>
        ///   <para>如果输入是分支工作区，则此参数的唯一有效选项是协调所有版本。</para>
        ///   <bulletList>
        ///     <bullet_item>协调所有版本 - 将编辑版本与目标版本进行协调。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>仅协调阻止版本 - 协调阻止目标版本压缩的版本。此选项使用建议的协调顺序。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// </param>
        public ReconcileVersions(object _input_database, _reconcile_mode_value _reconcile_mode)
        {
            this._input_database = _input_database;
            this._reconcile_mode = _reconcile_mode;
        }
        public override string ToolboxName => "Data Management Tools";

        public override string ToolName => "Reconcile Versions";

        public override string CallName => "management.ReconcileVersions";

        public override List<string> AcceptEnvironments => ["workspace"];

        public override object[] ParameterInfo => [_input_database, _reconcile_mode.GetGPValue(), _target_version, _edit_versions, _acquire_locks.GetGPValue(), _abort_if_conflicts.GetGPValue(), _conflict_definition.GetGPValue(), _conflict_resolution.GetGPValue(), _with_post.GetGPValue(), _with_delete.GetGPValue(), _out_log, _out_workspace, _proceed_if_conflicts_not_reviewed.GetGPValue(), _reconcile_checkout_versions.GetGPValue()];

        /// <summary>
        /// <para>Input Workspace</para>
        /// <para><xdoc>
        ///   <para>The enterprise geodatabase that contains the versions to be reconciled.</para>
        ///   <para>For branch versioning, this will be the feature service URL (that is, https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer) or the feature layer portal item.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>包含要协调的版本的企业级地理数据库。</para>
        ///   <para>对于分支版本控制，这将是要素服务 URL（即 https://mysite.mydomain/server/rest/services/ElectricNetwork/FeatureServer）或要素图层门户项目。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Workspace")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _input_database { get; set; }


        /// <summary>
        /// <para>Reconcile Mode</para>
        /// <para><xdoc>
        ///   <para>Specifies the versions that will be reconciled when the tool is executed.</para>
        ///   <para>If the input is a branch workspace, the only valid option for this parameter is to reconcile all versions.</para>
        ///   <bulletList>
        ///     <bullet_item>Reconcile all versions—Reconciles edit versions with the target version. This is the default.</bullet_item><para/>
        ///     <bullet_item>Reconcile blocking versions only—Reconciles versions that are blocking the target version from compressing. This option uses the recommended reconcile order.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在执行工具时要协调的版本。</para>
        ///   <para>如果输入是分支工作区，则此参数的唯一有效选项是协调所有版本。</para>
        ///   <bulletList>
        ///     <bullet_item>协调所有版本 - 将编辑版本与目标版本进行协调。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>仅协调阻止版本 - 协调阻止目标版本压缩的版本。此选项使用建议的协调顺序。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Reconcile Mode")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public _reconcile_mode_value _reconcile_mode { get; set; }

        public enum _reconcile_mode_value
        {
            /// <summary>
            /// <para>Reconcile all versions</para>
            /// <para>Reconcile all versions—Reconciles edit versions with the target version. This is the default.</para>
            /// <para>协调所有版本 - 将编辑版本与目标版本进行协调。这是默认设置。</para>
            /// </summary>
            [Description("Reconcile all versions")]
            [GPEnumValue("ALL_VERSIONS")]
            _ALL_VERSIONS,

            /// <summary>
            /// <para>Reconcile blocking versions only</para>
            /// <para>Reconcile blocking versions only—Reconciles versions that are blocking the target version from compressing. This option uses the recommended reconcile order.</para>
            /// <para>仅协调阻止版本 - 协调阻止目标版本压缩的版本。此选项使用建议的协调顺序。</para>
            /// </summary>
            [Description("Reconcile blocking versions only")]
            [GPEnumValue("BLOCKING_VERSIONS")]
            _BLOCKING_VERSIONS,

        }

        /// <summary>
        /// <para>Target Version</para>
        /// <para><xdoc>
        ///   <para>The name of any version in the direct ancestry of the edit version, such as the parent version or the default version.</para>
        ///   <para>It typically contains edits from other versions that you want included in the edit version.</para>
        ///   <para>If the input is a branch workspace, the only valid option for this parameter is to reconcile with the default version.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>编辑版本的直接祖先中任何版本的名称，例如父版本或默认版本。</para>
        ///   <para>它通常包含您希望包含在编辑版本中的其他版本的编辑内容。</para>
        ///   <para>如果输入是分支工作区，则此参数的唯一有效选项是与默认版本进行协调。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Target Version")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _target_version { get; set; } = null;


        /// <summary>
        /// <para>Edit Versions</para>
        /// <para><xdoc>
        ///   <para>The name of the edit version or versions to be reconciled with the selected target version.</para>
        ///   <para>Only versions that are in the direct ancestry of the selected target version will be displayed.</para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>要与所选目标版本协调的一个或多个编辑版本的名称。</para>
        ///   <para>仅显示所选目标版本的直接祖先版本。</para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Edit Versions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public List<object> _edit_versions { get; set; } = null;


        /// <summary>
        /// <para>Acquire Locks</para>
        /// <para><xdoc>
        ///   <para>Specifies whether feature locks will be acquired.</para>
        ///   <para>If the input is a branch workspace, locks are not acquired during the reconcile process.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Locks will be acquired during the reconcile process. Use this option when the intention is to post edits. It ensures that the target version is not modified in the time between the reconcile and post operations. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Locks will not be acquired during the reconcile process. This allows multiple users to reconcile in parallel. Use this option when the edit version will not be posted to the target version because there is a possibility that the target version may be modified in the time between the reconcile and post operations.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否获取功能锁。</para>
        ///   <para>如果输入是分支工作区，则在协调过程中不会获取锁。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 将在协调过程中获取锁。如果打算发布编辑内容，请使用此选项。它确保在对帐和后期操作之间的时间内不会修改目标版本。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 在协调过程中不会获取锁。这允许多个用户并行进行协调。如果编辑版本不会发布到目标版本，请使用此选项，因为在协调和后期操作之间的时间内可能会修改目标版本。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Acquire Locks")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _acquire_locks_value _acquire_locks { get; set; } = _acquire_locks_value._true;

        public enum _acquire_locks_value
        {
            /// <summary>
            /// <para>LOCK_ACQUIRED</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("LOCK_ACQUIRED")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_LOCK_ACQUIRED</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_LOCK_ACQUIRED")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Abort if Conflicts Detected</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the reconcile process will be aborted if conflicts are found between the target version and the edit version during the reconcile process.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The reconcile will be aborted if conflicts are found.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The reconcile will not be aborted if conflicts are found. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定如果在协调过程中发现目标版本与编辑版本之间存在冲突，是否将中止协调过程。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 如果发现冲突，协调将中止。</bullet_item><para/>
        ///     <bullet_item>未选中 - 如果发现冲突，协调将不会中止。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Abort if Conflicts Detected")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _abort_if_conflicts_value _abort_if_conflicts { get; set; } = _abort_if_conflicts_value._false;

        public enum _abort_if_conflicts_value
        {
            /// <summary>
            /// <para>ABORT_CONFLICTS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("ABORT_CONFLICTS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_ABORT</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_ABORT")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Conflict Definition</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the conditions required for a conflict to occur are defined by object (row) or by attribute (column).</para>
        ///   <bulletList>
        ///     <bullet_item>Conflicts defined by object (by row)—Any changes to the same row or feature in the parent and child versions will conflict during reconcile. This is the default.</bullet_item><para/>
        ///     <bullet_item>Conflicts defined by attribute (by column)—Only changes to the same attribute (column) of the same row or feature in the parent and child versions will be flagged as a conflict during reconcile. Changes to different attributes will not be considered a conflict during reconcile.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定发生冲突所需的条件是由对象（行）还是按属性（列）定义。</para>
        ///   <bulletList>
        ///     <bullet_item>对象定义的冲突（按行）- 在协调过程中，对父版本和子版本中同一行或要素所做的任何更改都将发生冲突。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>按属性（按列）定义的冲突 - 在协调期间，只有对父版本和子版本中同一行或要素的同一属性（列）所做的更改才会被标记为冲突。在协调过程中，对不同属性的更改不会被视为冲突。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Conflict Definition")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _conflict_definition_value _conflict_definition { get; set; } = _conflict_definition_value._BY_OBJECT;

        public enum _conflict_definition_value
        {
            /// <summary>
            /// <para>Conflicts defined by object (by row)</para>
            /// <para>Conflicts defined by object (by row)—Any changes to the same row or feature in the parent and child versions will conflict during reconcile. This is the default.</para>
            /// <para>对象定义的冲突（按行）- 在协调过程中，对父版本和子版本中同一行或要素所做的任何更改都将发生冲突。这是默认设置。</para>
            /// </summary>
            [Description("Conflicts defined by object (by row)")]
            [GPEnumValue("BY_OBJECT")]
            _BY_OBJECT,

            /// <summary>
            /// <para>Conflicts defined by attribute (by column)</para>
            /// <para>Conflicts defined by attribute (by column)—Only changes to the same attribute (column) of the same row or feature in the parent and child versions will be flagged as a conflict during reconcile. Changes to different attributes will not be considered a conflict during reconcile.</para>
            /// <para>按属性（按列）定义的冲突 - 在协调期间，只有对父版本和子版本中同一行或要素的同一属性（列）所做的更改才会被标记为冲突。在协调过程中，对不同属性的更改不会被视为冲突。</para>
            /// </summary>
            [Description("Conflicts defined by attribute (by column)")]
            [GPEnumValue("BY_ATTRIBUTE")]
            _BY_ATTRIBUTE,

        }

        /// <summary>
        /// <para>Conflict Resolution</para>
        /// <para><xdoc>
        ///   <para>Specifies the resolution if a conflict is detected.</para>
        ///   <para>If the input is a branch workspace, the default is to favor the edit version.</para>
        ///   <bulletList>
        ///     <bullet_item>Resolve conflicts in favor of the target version—All conflicts will be resolved in favor of the target version. This is the default for traditional versioning.</bullet_item><para/>
        ///     <bullet_item>Resolve conflicts in favor of the edit version—All conflicts will be resolved in favor of the edit version. This is the default for branch versioning.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定检测到冲突时的解决方案。</para>
        ///   <para>如果输入是分支工作区，则默认为支持编辑版本。</para>
        ///   <bulletList>
        ///     <bullet_item>解决有利于目标版本的冲突 - 将解决所有冲突以支持目标版本。这是传统版本控制的默认设置。</bullet_item><para/>
        ///     <bullet_item>解决有利于编辑版本的冲突 - 所有冲突都将得到解决，以支持编辑版本。这是分支版本控制的默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Conflict Resolution")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _conflict_resolution_value _conflict_resolution { get; set; } = _conflict_resolution_value._FAVOR_TARGET_VERSION;

        public enum _conflict_resolution_value
        {
            /// <summary>
            /// <para>Resolve conflicts in favor of the target version</para>
            /// <para>Resolve conflicts in favor of the target version—All conflicts will be resolved in favor of the target version. This is the default for traditional versioning.</para>
            /// <para>解决有利于目标版本的冲突 - 将解决所有冲突以支持目标版本。这是传统版本控制的默认设置。</para>
            /// </summary>
            [Description("Resolve conflicts in favor of the target version")]
            [GPEnumValue("FAVOR_TARGET_VERSION")]
            _FAVOR_TARGET_VERSION,

            /// <summary>
            /// <para>Resolve conflicts in favor of the edit version</para>
            /// <para>Resolve conflicts in favor of the edit version—All conflicts will be resolved in favor of the edit version. This is the default for branch versioning.</para>
            /// <para>解决有利于编辑版本的冲突 - 所有冲突都将得到解决，以支持编辑版本。这是分支版本控制的默认设置。</para>
            /// </summary>
            [Description("Resolve conflicts in favor of the edit version")]
            [GPEnumValue("FAVOR_EDIT_VERSION")]
            _FAVOR_EDIT_VERSION,

        }

        /// <summary>
        /// <para>Post Versions After Reconcile</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the current edit session will be posted to the reconciled target version.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The current edit version will be posted to the target version after the reconcile.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The current edit version will not be posted to the target version after the reconcile. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否将当前编辑会话发布到协调的目标版本。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 当前编辑版本将在协调后发布到目标版本。</bullet_item><para/>
        ///     <bullet_item>未选中 - 协调后，当前编辑版本将不会发布到目标版本。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Post Versions After Reconcile")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _with_post_value _with_post { get; set; } = _with_post_value._false;

        public enum _with_post_value
        {
            /// <summary>
            /// <para>POST</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("POST")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NO_POST</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NO_POST")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Delete Versions After Post</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the reconciled edit version will be deleted after posting. This parameter only applies if the Post Versions After Reconcile parameter is checked.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The current edit version that was reconciled will be deleted after being posted to the target version.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The current edit version that was reconciled will not be deleted. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否在发布后删除已协调的编辑版本。仅当选中“协调后发布版本”参数时，此参数才适用。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 已协调的当前编辑版本在发布到目标版本后将被删除。</bullet_item><para/>
        ///     <bullet_item>未选中 - 不会删除已协调的当前编辑版本。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Delete Versions After Post")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _with_delete_value _with_delete { get; set; } = _with_delete_value._false;

        public enum _with_delete_value
        {
            /// <summary>
            /// <para>DELETE_VERSION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DELETE_VERSION")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>KEEP_VERSION</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("KEEP_VERSION")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Reconcile Versions Log</para>
        /// <para>The name and location where the log file will be written. The log file is an ASCII file containing the contents of the geoprocessing messages.</para>
        /// <para>将写入日志文件的名称和位置。日志文件是一个 ASCII 文件，其中包含地理处理消息的内容。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Reconcile Versions Log")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _out_log { get; set; } = null;


        /// <summary>
        /// <para>Updated Input Workspace</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Updated Input Workspace")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _out_workspace { get; set; }


        /// <summary>
        /// <para>Proceed if unreviewed conflicts are detected</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the reconcile will proceed if there are unreviewed conflicts that exist before starting the reconcile process. If you choose to proceed, outstanding conflicts from previous sessions will be lost upon tool execution. This parameter is only applicable to branch versioning.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The reconcile process will proceed if outstanding conflicts have not been reviewed. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The reconcile process will not proceed if outstanding conflicts that have not been reviewed are detected.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在开始协调过程之前存在未审核的冲突时，是否将继续进行协调。如果选择继续，则在工具执行时，先前会话中的未解决冲突将丢失。该参数仅适用于分支版本控制。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 如果未审阅未解决的冲突，则协调过程将继续进行。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 如果检测到尚未审核的未决冲突，则协调过程将不会继续。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Proceed if unreviewed conflicts are detected")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _proceed_if_conflicts_not_reviewed_value _proceed_if_conflicts_not_reviewed { get; set; } = _proceed_if_conflicts_not_reviewed_value._true;

        public enum _proceed_if_conflicts_not_reviewed_value
        {
            /// <summary>
            /// <para>PROCEED</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("PROCEED")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>NOT_PROCEED</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("NOT_PROCEED")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Reconcile checkout replica versions</para>
        /// <para><xdoc>
        ///   <para>Specifies whether the reconcile will include checkout replica versions. If you are creating a checkout replica as part of a geodatabase replication workflow, an associated version is created in the geodatabase. This option allows you to include or remove these types of versions from the list of versions to be reconciled. This parameter is not applicable for branch versioning.</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>Checked—The reconcile process will include checkout replica versions. This is the default.</bullet_item><para/>
        ///       <bullet_item>Unchecked—The reconcile process will not include checkout replica versions.</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定协调是否包括签出副本版本。如果要在地理数据库复制工作流中创建检出复本，则会在地理数据库中创建关联版本。此选项允许您在要协调的版本列表中包含或删除这些类型的版本。此参数不适用于分支版本控制。</para>
        ///   <para>
        ///     <bulletList>
        ///       <bullet_item>选中 - 协调过程将包括检出副本版本。这是默认设置。</bullet_item><para/>
        ///       <bullet_item>未选中 - 协调过程将不包括检出副本版本。</bullet_item><para/>
        ///     </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Reconcile checkout replica versions")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _reconcile_checkout_versions_value _reconcile_checkout_versions { get; set; } = _reconcile_checkout_versions_value._true;

        public enum _reconcile_checkout_versions_value
        {
            /// <summary>
            /// <para>RECONCILE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("RECONCILE")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DO_NOT_RECONCILE</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DO_NOT_RECONCILE")]
            [GPEnumValue("false")]
            _false,

        }

        public ReconcileVersions SetEnv(object workspace = null)
        {
            base.SetEnv(workspace: workspace);
            return this;
        }

    }

}